/*
 * 
 *  Este arquivo é parte do software TODO Calculadora. TODO Calculadora é um software livre;
 *  você pode redistribui-lo e/ou modifica-lo dentro dos termos da Licença Pública Geral GNU
 *  como publicada pela Fundação do Software Livre (FSF); na versão 2 da Licença,
 *  ou (na sua opnião) qualquer versão.
 *  
 *	Este programa é distribuido na esperança que possa ser útil, mas SEM NENHUMA GARANTIA;
 *  sem uma garantia implícita de ADEQUAÇÂO a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR.
 *  Veja a Licença Pública Geral GNU para maiores detalhes. Você deve ter recebido uma cópia
 *  da Licença Pública Geral GNU junto com este programa, se não, escreva para a Fundação do
 *	Software Livre(FSF)
 *
 *	Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 */

package enums;

/**
 * <p>
 * Estrutura enumerada que representa unidades de medida relacionadas a medida
 * de armazenamento.
 * </p>
 * 
 * @author Willyan Guimarães Caetano
 * 
 */
public enum UnidadeMedidaArmazenamento {

	/** BIT */
	BIT(1D, "b", "Bit"),
	/** MByte */
	BYTE(8D, "B", "Byte"),
	/** KiloByte */
	KBYTE(1024D, "KB", "KiloByte"),
	/** Megabyte */
	MEGABYTE(Math.pow(1024, 2), "MB", "Megabyte"),
	/** Gigabyte */
	GIGABYTE(Math.pow(1024, 3), "GB", "Gigabyte"),
	/** Terbayte */
	TERABYTE(Math.pow(1024, 4), "TB", "Terbayte"),
	/** Petabyte */
	PETABYTE(Math.pow(1024, 5), "PB", "Petabyte"),
	/** Exabyte */
	EXABYTE(Math.pow(1024, 6), "EB", "Exabyte"),
	/** Zettabyte */
	ZETTABYTE(Math.pow(1024, 7), "ZB", "Zettabyte"),
	/** Yottabyte */
	YOTTABYTE(Math.pow(1024, 8), "YB", "Yottabyte ");

	/** Valor da unidade */
	private double valor;
	/** Sigla da unidade */
	private String sigla;
	/** Descrição da unidade */
	private String descricao;

	private UnidadeMedidaArmazenamento(double valor, String sigla,
			String descricao) {
		this.valor = valor;
		this.sigla = sigla;
		this.descricao = descricao;
	}

	public double getValor() {
		return valor;
	}

	public String getSigla() {
		return sigla;
	}

	public String getDescricao() {
		return descricao;
	}

}